#ifndef IMAGE_H
#define IMAGE_H
/*!
  * \file image.h
  * \version 0.1
  */
#include <opencv2/opencv.hpp>
#include <QRect>
#include <QImage>
#include <drawshape.h>

#include <QDebug>

/*!
  * \namespace cv
  * namespace of OpenCV
  */
using namespace cv;
/*!
  * \class Image
  * \brief Class to image container
  * \version 0.1
  */
class Image
{
private:
    Mat image;
    Mat imageSource;
    DrawShape Roi;
    QList<DrawShape> shapes;
public:
    Image();
    /*!
      * \fn Image(Mat img);
      * \brief Constructor
      * \version 0.1
      */
    Image(Mat img);
    /*!
      * \fn Mat getImage();
      * \brief return OpenCV image (Mat)
      * \version 0.1
      */
    ~Image();
    Mat getImage();
    void addShape(DrawShape shape);
    QList<DrawShape> getShapes();
    /*!
      * \fn static QImage getQImage(Mat image);
      * \brief get a QImage of a OpenCV image
      * \version 0.1
      */
    static QImage getQImage(Mat image);
};

#endif // IMAGE_H
